package com.service.fmgcode.gcode.templateconfig;

import com.service.fmgcode.gcode.dbconfig.rules.DateType;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author wangyongkun
 * @Description: 全局配置
 * @Date: 2020/3/31 13:34
 */
@Data
@Accessors(chain = true)
public class GlobalConfig {

    /**
     * 生成文件的输出目录【默认 D 盘根目录】
     */
    private String outputDir = "D://";

    /**
     * 是否覆盖已有文件
     */
    private boolean fileOverride = false;

    /**
     * 是否打开输出目录
     */
    private boolean open = true;

    /**
     * 是否在xml中添加二级缓存配置
     */
    private boolean enableCache = false;

    /**
     * 开发人员
     */
    private String author;

    /**
     * 开启 Kotlin 模式
     */
    private boolean kotlin = false;

    /**
     * 开启 swagger2 模式
     */
    private boolean swagger2 = false;

    /**
     * 开启 ActiveRecord 模式
     *  也是一种orm映射模式
     */
    private boolean activeRecord = false;

    /**
     * 开启 BaseResultMap
     */
    private boolean baseResultMap = false;

    /**
     * 时间类型对应策略
     */
    private DateType dateType = DateType.TIME_PACK;

    /**
     * 开启 baseColumnList
     */
    private boolean baseColumnList = false;
    /**
     * 各层文件名称方式，例如： %Action 生成 UserAction
     */
    private String entityName;
    private String mapperName;
    private String xmlName;
    private String serviceName;
    private String serviceImplName;
    private String controllerName;
    /**
     * SERVICE和API层使用的实体类: TO自定义名字
     */
    private String entityToName;
//    /**
//     * 指定生成的主键的ID类型
//     */
//    private IdType idType;
    private boolean idIsShow = false;

    private boolean domainPkg = false;
}
